כמה פעמים רציתם להכניס אלמנטים קבועים בתוך הודעות או עמודים במערכת וורדפרס, כמו בלוק של טוויטר, גלריה מגניבה במיוחד שאמורה להיות קבועה ורציתם להמנע מבלאגן מיותר. למנוע מהלקוח להתעסק בקוד ולא משנה כמה הוא פשוט, למנוע לכם תקלות שעורך התוכן עלול לייצר בעקבות עריכת ההודעה ותקלות שונות ושמונות שעלולות לצוץ.
"shortcodes" הוא פיתרון מעולה לאותם אלמנטים שחוזרים על עצמם, הוא מאפשר לכם דרך ממשק הניהול, בעת עריכת עמוד או פוסט, להוסיף טאגית פשוטה כמו [my-shortcode] ולהציג באתר את האלמנט המבוקש במקומו. בלי תקלות, בלי עיוותים בקוד שעורך התוכן הגאוני של וורדפרס יצר לנו. הלקוח מבסוט, אתם יודעים שבכדי לערוך את האלמנט נדרשת ממכם גישה לשורה אחת בקוד ולא לערוך את כל ההודעות - המצב האופטימלי.
אחרי שהתלהבתי, אני אסביר איך זה עובד מאחורי הקלעים.
כמו תמיד, אנחנו ניגש לעמוד functions.php שהוא העמוד שנטען בכל שלב במערכת וורדפרס ומאפשר לנו באמצעותו לבצע עריכות ותוספות שונות למערכת (בעיקר באמצעות התחברות לפונקציות קיימות - hooking).
אנחנו נוסיף שורה קטנה ומאוד נוחה לאותו קובץ (המיקום לא קריטי, אבל עדיף להוסיף את הפונקציות במרוכז בסוף הקובץ)
add_shortcode( 'my-shortcode', 'my_shortcode_handler' );
מה שעשינו פה הוא מאוד פשוט, השתמשנו בפונקציה add_shortcode של וורדפרס שבגדול אפשר להתייחס אליה כאל search and replace. ברגע שהתוכן של העמוד יוצג (משמע תהיה קריאה לפונקציה the_content) היא תחפש טאגית בערך [my-shortcode] ותחליף אותה ב-my_shortcode_handler שהיא כמובן פונקציה שמחזירה את הערך הרצוי.
לדוגמא:
function my_shortcode_handler($attr)
{
echo <<
Hello world!
html;
}
פי שניתן לראות, הפונקציה מקבלת עליה גם ערכים נוספים שהבסיסית היא attributes, לדוגמא במידה ונרשום ["my-shortcode foo="fighter] אז נוכל להשתמש ב foo שהוא חלק מהמערך המתקבל ולהשתמש במידע בהתאם.
הנושא לא רחב במיוחד, אבל ניתן לפתח אותו מעבר לכך. סיפקתי פה הסבר קצר ומתומצת שיתן לכם את הדחיפה הראשונה. וורדפרס מספקת דוקומנטציה מלאה ומפורטת (כרגיל). במידה ותחליטו להשתמש וללמוד את הפונקציה הזאת, אני ממליץ לכם לעבור על הדוקומנטציה ולהבין בדיוק מה הכלים שעומדים לרשותכם בנושא הזה.
קישור לעמוד הדוקומנטציה: http://codex.wordpress.org/Shortcode_API
שיהיה לנו פיתוח שקט, נוח ומהיר
בן יצחקי, מפתח אתרים ואפליקציות ווב.
http://beny.co.il